/*
 * Copyright (c) 2024 Shenzhen Kaihong Digital Industry Development Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

import type { ServerRef as _grpc_channelz_v1_ServerRef, ServerRef__Output as _grpc_channelz_v1_ServerRef__Output } from './ServerRef';
import type { ServerData as _grpc_channelz_v1_ServerData, ServerData__Output as _grpc_channelz_v1_ServerData__Output } from './ServerData';
import type { SocketRef as _grpc_channelz_v1_SocketRef, SocketRef__Output as _grpc_channelz_v1_SocketRef__Output } from './SocketRef';

/**
 * Server represents a single server.  There may be multiple servers in a single
 * program.
 */
export interface Server {
  /**
   * The identifier for a Server.  This should be set.
   */
  'ref'?: (_grpc_channelz_v1_ServerRef | null);
  /**
   * The associated data of the Server.
   */
  'data'?: (_grpc_channelz_v1_ServerData | null);
  /**
   * The sockets that the server is listening on.  There are no ordering
   * guarantees.  This may be absent.
   */
  'listen_socket'?: (_grpc_channelz_v1_SocketRef)[];
}

/**
 * Server represents a single server.  There may be multiple servers in a single
 * program.
 */
export interface Server__Output {
  /**
   * The identifier for a Server.  This should be set.
   */
  'ref': (_grpc_channelz_v1_ServerRef__Output | null);
  /**
   * The associated data of the Server.
   */
  'data': (_grpc_channelz_v1_ServerData__Output | null);
  /**
   * The sockets that the server is listening on.  There are no ordering
   * guarantees.  This may be absent.
   */
  'listen_socket': (_grpc_channelz_v1_SocketRef__Output)[];
}
